/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bettosimport.negocio;

import com.bettosimport.datos.ProductoDAO;
import com.bettosimport.entidades.Producto;
import com.bettosimport.entidades.Producto_Precio;
import com.bettosimport.entidades.Sucursal_Producto;
import java.util.ArrayList;

/**
 *
 * @author Neil
 */
public class ProductoNeg {

    private static ProductoNeg _Instancia;

    private ProductoNeg() {
    }

    public static ProductoNeg Instancia() {
        if (_Instancia == null) {
            _Instancia = new ProductoNeg();
        }
        return _Instancia;
    }

    public ArrayList<Producto> filtrarProductos(String desc_prod) throws Exception {
        try {
            return ProductoDAO.Instancia().filtrarProductos(desc_prod);
        } catch (Exception e) {
            throw e;
        }
    }

    public ArrayList<Sucursal_Producto> productos(int suc, int linea, int familia) throws Exception {
        try {
            return ProductoDAO.Instancia().listarProductos(suc, linea, familia);
        } catch (Exception e) {
            throw e;
        }
    }

    public Producto buscarProductos(int idprod) throws Exception {
        try {
            return ProductoDAO.Instancia().buscarProductos(idprod);
        } catch (Exception e) {
            throw e;
        }
    }

    public int guardarproducto(Producto p, String accion) throws Exception {
        try {
            String xml = "<root>"
                    + "<Producto id_prod='" + p.getId_prod()
                    + "' desc_prod='" + p.getDesc_prod()
                    + "' modelo='" + p.getModel_prod()
                    + "' marca='" + p.getMarca().getId_marca()
                    + "' familia='" + p.getFamilia().getId_fam()
                    + "' accion='" + accion + "' /></root>";
            return ProductoDAO.Instancia().guardarproducto(xml,p.getId_prod());
        } catch (Exception e) {
            throw e;
        }
    }

    public ArrayList<Producto_Precio> preciosDeProductos(int suc, int prod) throws Exception {
        try {
            return ProductoDAO.Instancia().listarPreciosDeProductos(suc, prod);
        } catch (Exception e) {
            throw e;
        }
    }

    public ArrayList<Sucursal_Producto> stockDeProducto(int prod) throws Exception {
        try {
            return ProductoDAO.Instancia().listarStockDeProducto(prod);
        } catch (Exception e) {
            throw e;
        }
    }
}
